package iso2.dominio;

import iso2.persistencia.ConexionesOcupadasException;
import iso2.persistencia.FPPedido;

import java.util.ArrayList;
import java.util.Calendar;
import java.sql.Date;
import java.sql.SQLException;

public class Pedido {
	private int id;
	private Date fecha;
	private String estado;
	private double importe;
	private String usuario;
	private ArrayList<Articulo> articulos;
	
	public Pedido(String estado, double importe,
			String usuario, ArrayList<Articulo> articulos) {
		this.fecha = new Date(Calendar.getInstance().getTimeInMillis());
		this.estado = estado;
		this.importe = importe;
		this.usuario = usuario;
		this.articulos = articulos;
	}
	
	public Pedido(int id) {
		this.id = id;
		articulos = new ArrayList<Articulo>();
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public double getImporte() {
		return importe;
	}

	public void setImporte(double importe) {
		this.importe = importe;
	}

	public String getUsuario() {
		return usuario;
	}

	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	public ArrayList<Articulo> getArticulos() {
		return articulos;
	}

	public void setArticulos(ArrayList<Articulo> articulos) {
		this.articulos = articulos;
	}
	
	public void insertPedido() throws SQLException, 
						  			  ConexionesOcupadasException {
		FPPedido.insertPedido(this);
	}
	
	public void readPedido() throws SQLException, ConexionesOcupadasException, 
									PedidoInvalidoException, 
									ArticuloInvalidoException {
		FPPedido.readPedido(this);
	}
	
	public void updateEstadoPedido() throws SQLException,
											ConexionesOcupadasException {
		FPPedido.updateEstadoPedido(this);
	}
}
